home *** CD-ROM | disk | FTP | other *** search
/ Aminet 7 / Aminet 7 - August 1995.iso / Aminet / util / batch / pause380.lha / Pause / src / Paus.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-05-18  |  2.3 KB  |  110 lines

  1. {*********************************************}
  2. {*                                           *}
  3. {*       Designer (C) Ian OConnor 1994       *}
  4. {*                                           *}
  5. {*       Designer Produced Pascal Unit       *}
  6. {*                                           *}
  7. {*********************************************}
  8.  
  9. {*   Re-edited by Nicolai Jensen May-17-1995 *}
  10.  
  11. Unit Paus;
  12.  
  13. Interface
  14.  
  15. Uses exec,locale, utility;
  16.  
  17.  
  18. Function OpenLibs:Boolean;
  19. Procedure CloseLibs;
  20. Procedure Settagitem( pt : ptagitem ; tag : long ; data : long);
  21. function  GetString( id : long ):string;
  22. function GetStringptr( id : long ):pbyte;
  23. procedure OpenPauseCatalog(loc : pLocale ;lang : pbyte);
  24. Procedure ClosePauseCatalog;
  25.  
  26.  
  27. const
  28.  
  29.   Pause_BuiltInLanguage : string[8] = 'english'#0;
  30.   Pause_CatName : string[14] = 'Pause.catalog'#0;
  31.  
  32.   PauseText = 0;
  33.  
  34.   ProgramStrings : array[0..1] of string[34] =
  35.   (
  36.   'Pause... hit <ENTER> to continue '#0,
  37.   ''#0
  38.   );
  39. Var
  40.   Pause_Catalog : pCatalog;
  41.  
  42. Implementation
  43.  
  44. Function OpenLibs:Boolean;
  45. Var
  46.   OkSoFar : Boolean;
  47. Begin
  48.   OkSoFar:=True;
  49.   localebase:=OpenLibrary( 'locale.library', 38);
  50. end;
  51.  
  52. Procedure CloseLibs;
  53. Begin
  54.   if localebase<>Nil then
  55.     CloseLibrary( PLibrary( localebase));
  56. end;
  57.  
  58. Procedure Settagitem( pt : ptagitem ; tag : long ; data : long);
  59. Begin
  60.   pt^.ti_tag:=tag;
  61.   pt^.ti_data:=data;
  62. end;
  63.  
  64.  
  65. function GetString( id : long ):string;
  66. var
  67.   temp : string;
  68.   p    : pbyte;
  69. begin
  70.   p:=GetStringptr( id );
  71.   ctopas(p^,temp);
  72.   GetString:=temp;
  73. end;
  74.  
  75. function GetStringptr( id : long ):pbyte;
  76. begin
  77.   if Pause_Catalog<>nil then
  78.     GetStringptr:=pbyte(GetCatalogStr(Pause_Catalog, id, STRPTR(@Programstrings[id,1])))
  79.    else
  80.     GetStringptr:=pbyte(@ProgramStrings[id,1]);
  81. end;
  82.  
  83. procedure OpenPauseCatalog(loc : pLocale ;lang : pbyte);
  84. var
  85.   tags : array[1..5] of ttagitem;
  86. begin
  87.   tags[1].ti_data:=long(lang);
  88.   if lang<>nil then
  89.     tags[1].ti_tag:=$80090004
  90.    else
  91.     tags[1].ti_tag:=tag_ignore;
  92.   settagitem(@tags[2],$80090001,long(@Pause_BuiltInLanguage[1]));
  93.   settagitem(@tags[3],$80090003,1);
  94.   tags[4].ti_tag:=tag_done;
  95.   if (localebase<>nil) and (Pause_Catalog = nil) then
  96.     Pause_Catalog:=OpenCatalogA(loc,@Pause_CatName[1], @tags[1]);
  97. end;
  98.  
  99. Procedure ClosePauseCatalog;
  100. begin
  101.   if localebase<>nil then
  102.     CloseCatalog(Pause_Catalog);
  103.   Pause_Catalog:=nil;
  104. end;
  105.  
  106. Begin
  107.   Pause_Catalog:=nil;
  108.   LocaleBase:=nil;
  109. End.
  110.